1. Field of the Invention
The present invention is related generally to host adapter systems that control transfer of data between two buses, and more specifically to an integrated circuit and system for RAID applications that includes a hardware data function.
2. Description of Related Art
The Small Computer System Interface (SCSI) standard, which is specified by the American National Standards Institute (ANSI X3.131-1986, which is incorporated herein by reference in its entirety) of 1430 Broadway, New York, N.Y. 10018, is an example of an industry-recognized standard for a relatively complex local area network. Descriptions of the SCSI bus may be found for example in U.S. Pat. No. 4,864,291 "SCSI Converter" issued Sep. 5, 1989 to J. E. Korpi and in U.S. Pat. No. 4,905,184 "Address Control System for Segmented Buffer Memory" issued Feb. 27, 1990, to R. P. Giridhar, et al., which are incorporated herein by reference in their entirety.
A typical SCSI system 100 is illustrated in FIG. 1. A plurality of intelligent devices 120, 140, 141, 142 are coupled to SCSI bus 110 so that these devices can exchange information. The intelligent devices are (i) a first host system 120, whose internal structure is shown in detail, that includes host adapter system 160 (ii) a second host system 140, whose internal structure is similar to that shown for system 120, (iii) a first SCSI disk drive unit (Target-A) 141, and (iv) a second SCSI disk drive unit (Target-B) 142. The host adapter system in a host computer can be either a single integrated circuit, or a plug-in board. In each case, the host adapter system, hereinafter host adapter, transfers data between a host computer bus, e.g., an ISA bus, an EISA bus, a VME bus, or a PCI bus, and a SCSI bus.
Typically, a software driver, executing on CPU 121 of host computer 120, builds and sends a command block to the host adapter. Each command block specifies exactly how a SCSI command is to be executed. Host adapter 160 executes the command block, and interrupts host computer 120 to report completion of the execution. Herein, execution of a command block means performance of the SCSI command contained in the command block. Consequently, host computer 120 is interrupted at least once for every command block.
The architecture in FIG. 1 is typical of that used to interface a single SCSI bus to a host computer bus. While this configuration can be used for RAID applications, a RAID 5 configuration requires manipulation of data to create redundancy for fault tolerance and to use the redundancy to recover data lost because of a fault. Data manipulation by software is notoriously slow, and uses significant host CPU time.
In another configuration, multiple host adapters, e.g., multiple host adapters 160, are sometimes used in RAID 5 applications. However, such a configuration does not alleviate the problems associated with manipulation of data with software processes, and does not alleviate the load on either host computer bus 126 or host computer microprocessor 121. Consequently, the performance of RAID 5 structures is limited by the performance of data manipulation using software.